{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.family'] = 'Microsoft YaHei'\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# https://www.kaggle.com/c/titanic/data\n",
    "train_data = pd.read_csv('train.csv')\n",
    "train_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 12 columns):\n",
      " #   Column       Non-Null Count  Dtype  \n",
      "---  ------       --------------  -----  \n",
      " 0   PassengerId  891 non-null    int64  \n",
      " 1   Survived     891 non-null    int64  \n",
      " 2   Pclass       891 non-null    int64  \n",
      " 3   Name         891 non-null    object \n",
      " 4   Sex          891 non-null    object \n",
      " 5   Age          714 non-null    float64\n",
      " 6   SibSp        891 non-null    int64  \n",
      " 7   Parch        891 non-null    int64  \n",
      " 8   Ticket       891 non-null    object \n",
      " 9   Fare         891 non-null    float64\n",
      " 10  Cabin        204 non-null    object \n",
      " 11  Embarked     889 non-null    object \n",
      "dtypes: float64(2), int64(5), object(5)\n",
      "memory usage: 83.7+ KB\n"
     ]
    }
   ],
   "source": [
    "train_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 891 entries, 0 to 890\n",
      "Data columns (total 8 columns):\n",
      " #   Column    Non-Null Count  Dtype  \n",
      "---  ------    --------------  -----  \n",
      " 0   Survived  891 non-null    int64  \n",
      " 1   Pclass    891 non-null    int64  \n",
      " 2   Sex       891 non-null    object \n",
      " 3   Age       714 non-null    float64\n",
      " 4   SibSp     891 non-null    int64  \n",
      " 5   Parch     891 non-null    int64  \n",
      " 6   Fare      891 non-null    float64\n",
      " 7   Embarked  889 non-null    object \n",
      "dtypes: float64(2), int64(4), object(2)\n",
      "memory usage: 55.8+ KB\n"
     ]
    }
   ],
   "source": [
    "train_data.drop(['PassengerId','Name','Ticket','Cabin'],axis=1,inplace=True)\n",
    "train_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 889 entries, 0 to 890\n",
      "Data columns (total 8 columns):\n",
      " #   Column    Non-Null Count  Dtype  \n",
      "---  ------    --------------  -----  \n",
      " 0   Survived  889 non-null    int64  \n",
      " 1   Pclass    889 non-null    int64  \n",
      " 2   Sex       889 non-null    object \n",
      " 3   Age       889 non-null    float64\n",
      " 4   SibSp     889 non-null    int64  \n",
      " 5   Parch     889 non-null    int64  \n",
      " 6   Fare      889 non-null    float64\n",
      " 7   Embarked  889 non-null    object \n",
      "dtypes: float64(2), int64(4), object(2)\n",
      "memory usage: 62.5+ KB\n"
     ]
    }
   ],
   "source": [
    "train_data.loc[:,['Age']] = train_data.loc[:,['Age']].fillna(train_data.loc[:,['Age']].mean())\n",
    "train_data.dropna(inplace=True)\n",
    "train_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Survived  Pclass     Sex   Age  SibSp  Parch     Fare Embarked\n",
       "0         0       3    male  22.0      1      0   7.2500        S\n",
       "1         1       1  female  38.0      1      0  71.2833        C\n",
       "2         1       3  female  26.0      0      0   7.9250        S\n",
       "3         1       1  female  35.0      1      0  53.1000        S\n",
       "4         0       3    male  35.0      0      0   8.0500        S"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Survived  Pclass  Sex   Age  SibSp  Parch     Fare Embarked\n",
       "0         0       3    0  22.0      1      0   7.2500        S\n",
       "1         1       1    1  38.0      1      0  71.2833        C\n",
       "2         1       3    1  26.0      0      0   7.9250        S\n",
       "3         1       1    1  35.0      1      0  53.1000        S\n",
       "4         0       3    0  35.0      0      0   8.0500        S"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.loc[:,['Sex']] = train_data.loc[:,['Sex']].replace(['male','female'],[0,1])\n",
    "train_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Survived  Pclass  Sex   Age  SibSp  Parch     Fare  Embarked\n",
       "0         0       3    0  22.0      1      0   7.2500         0\n",
       "1         1       1    1  38.0      1      0  71.2833         1\n",
       "2         1       3    1  26.0      0      0   7.9250         0\n",
       "3         1       1    1  35.0      1      0  53.1000         0\n",
       "4         0       3    0  35.0      0      0   8.0500         0"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "embarked_arr = train_data.loc[:,['Embarked']].drop_duplicates().values.flatten().tolist()\n",
    "train_data.loc[:,['Embarked']] = train_data.Embarked.apply(lambda x : embarked_arr.index(x))\n",
    "train_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pclass  Sex   Age  SibSp  Parch     Fare  Embarked\n",
       "0       3    0  22.0      1      0   7.2500         0\n",
       "1       1    1  38.0      1      0  71.2833         1\n",
       "2       3    1  26.0      0      0   7.9250         0\n",
       "3       1    1  35.0      1      0  53.1000         0\n",
       "4       3    0  35.0      0      0   8.0500         0"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature = train_data.loc[:,train_data.columns != 'Survived']\n",
    "feature.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0\n",
       "1    1\n",
       "2    1\n",
       "3    1\n",
       "4    0\n",
       "Name: Survived, dtype: int64"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "target = train_data.Survived\n",
    "target.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((622, 7), (267, 7), (622,), (267,))"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(feature,target, test_size=0.3, random_state=12345)\n",
    "X_train.shape,X_test.shape,y_train.shape,y_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 恢复索引的顺序\n",
    "# for i in [X_train, X_test, y_train, y_test]:\n",
    "#     i = i.reset_index(drop=True, inplace=False)\n",
    "\n",
    "# drop参数来避免将旧索引添加为列\n",
    "X_train = X_train.reset_index(drop=True, inplace=False)\n",
    "X_test = X_test.reset_index(drop=True, inplace=False)\n",
    "y_train = y_train.reset_index(drop=True, inplace=False)\n",
    "y_test = y_test.reset_index(drop=True, inplace=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.7958</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.0500</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>110.8833</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10.5000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pclass  Sex   Age  SibSp  Parch      Fare  Embarked\n",
       "0       3    0  18.0      0      0    7.7958         0\n",
       "1       3    0  25.0      0      0    7.0500         0\n",
       "2       1    0  17.0      0      2  110.8833         1\n",
       "3       3    0  32.0      0      0    7.9250         0\n",
       "4       2    0  29.0      0      0   10.5000         0"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7640449438202247"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 回归树\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "clf = DecisionTreeClassifier(criterion='entropy',splitter='random',max_depth = 2,random_state=12345)\n",
    "clf.fit(X_train,y_train)\n",
    "score = clf.score(X_test,y_test)\n",
    "score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.27570229, 0.648356  , 0.07594171, 0.        , 0.        ,\n",
       "       0.        , 0.        ])"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.feature_importances_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.775039674982543"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 交叉验证\n",
    "from sklearn.model_selection import cross_val_score\n",
    "cross_val_score(clf,feature,target,cv=5).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8121945026344187\n"
     ]
    }
   ],
   "source": [
    "# 动态调整\n",
    "d = []\n",
    "s = []\n",
    "ts = []\n",
    "for i in range(1, 8):\n",
    "    clf = DecisionTreeClassifier(splitter='random',\n",
    "                                 max_depth=i,\n",
    "                                 random_state=12345)\n",
    "    clf = clf.fit(X_train, y_train)\n",
    "    # 在训练集上的拟合情况\n",
    "    score_tr = clf.score(X_train, y_train)\n",
    "    # 测试集交叉验证训练打分\n",
    "    score = cross_val_score(clf, feature, target, cv=5).mean()\n",
    "    d.append(i)\n",
    "    s.append(score)\n",
    "    ts.append(score_tr)\n",
    "\n",
    "print(max(s))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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O5GIiORArovPvHnzaNSo0VXjd9xxB9OmTbupUCIOb9d8OLQG3L2h60TQ+nQiIk4h18XHarWSkpJyzXFdzi4FWvJ5+GWkcbvli1C0orl5REQkx3JdfFq2bMmECRPIzMzMNv7pp59St27dG3osu93O6NGjKV26NIUKFaJHjx7ExsZec9vp06dTvXp1vLy8qFu3LosXL876ns1m4+2336Z8+fL4+vpSr149FixYcOMvTuTfrHgLLsVCUHVoOtTsNCIicgNyfXLzhAkTaN68ObfddhtdunTB3d2dlStXsnPnTiIiIm7oscLDw5k0aRLTp0+nWLFiPP744/Tv358lS5Zk227VqlUMGDCADz/8kFatWjFnzhy6d+/Onj17qFq1KosXL2bp0qVMnTqVkiVLMmPGDHr16sWvv/6qxVMlbxzbBJu/Mm53+wDcPc3NIyIiN8Rit9vtuf3hI0eOMH78eH7//Xfsdjt16tRh5MiRNzSBoc1mo0SJEowaNYphw4YBEBERQefOnYmOjqZixb8OI4SHh/PNN9+wZcuWrLGiRYsydepUevXqxcmTJylevDju7n/1uWrVqnHvvfcybty4HOVJSEggICCA+Ph4/P39c/w6xAVkpsNnreH0bqjXB7pffXK/iIiYI6ef37k+1DVnzhz27t3LlClT2L59O6+88gqRkZG88847XLhwIcePs2vXLuLi4ujcuXPWWKtWrbBarWzYsCHbtnfddReHDx9mxYoVZGZmMmPGDDw8PGjTpg0ApUqVylZ6ALy9va86HPd3qampJCQkZPsSuaaN/zNKj08R6DDG7DQiIpILuS4+zz//PDabDYDDhw/z8MMPU7NmTaKionjuuedy/DjR0dEA2fbs+Pj4ULx4cY4fP55t29DQUMaNG0f79u3x8PDgscce4+uvvyYoKOiaj71x40Z27dpF27Ztr/v848aNIyAgIOurbNmyOc4uLuTCMVg11rjdYQwUKmZuHhERyZVcF5/4+HjKly8PwEcffUSTJk2YMWMGn3zyyQ2d43Px4kWsViteXl7Zxn19fUlNTc02tnLlSoYNG8bEiRPZuHEjw4cPp3fv3uzbt++qx924cSN33303vXr1olOnTtd9/pEjRxIfH5/1dezYsRxnFxfy88uQngTlmkL9vmanERGRXMp18alduzazZs1iw4YNfPnllzz//PPGA1qtJCYm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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.plot(d, s, label='验证')\n",
    "plt.plot(d, ts, label='训练')\n",
    "plt.xticks(d)\n",
    "plt.ylabel('score')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "ls = X_train.columns.to_list()\n",
    "m = {\n",
    "    'Pclass': '门票等级',\n",
    "    'Sex': '性别',\n",
    "    'Age': '年龄',\n",
    "    'SibSp': '船上兄弟姐妹/配偶数',\n",
    "    'Parch': '船上父母/孩子数',\n",
    "    'Fare': '票价',\n",
    "    'Embarked': '登船港'\n",
    "}\n",
    "pp = map(lambda x: m.get(x), ls)\n",
    "feature_names = list(pp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n",
       "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\r\n",
       " -->\r\n",
       "<!-- Title: Tree Pages: 1 -->\r\n",
       "<svg width=\"2836pt\" height=\"671pt\"\r\n",
       " viewBox=\"0.00 0.00 2836.00 671.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 667)\">\r\n",
       "<title>Tree</title>\r\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-667 2832,-667 2832,4 -4,4\"/>\r\n",
       "<!-- 0 -->\r\n",
       "<g id=\"node1\" class=\"node\"><title>0</title>\r\n",
       "<path fill=\"#f5cfb4\" stroke=\"black\" d=\"M1548,-663C1548,-663 1442,-663 1442,-663 1436,-663 1430,-657 1430,-651 1430,-651 1430,-592 1430,-592 1430,-586 1436,-580 1442,-580 1442,-580 1548,-580 1548,-580 1554,-580 1560,-586 1560,-592 1560,-592 1560,-651 1560,-651 1560,-657 1554,-663 1548,-663\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1495\" y=\"-647.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">性别 &lt;= 0.986</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1495\" y=\"-632.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.472</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1495\" y=\"-617.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 622</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1495\" y=\"-602.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [384, 238]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1495\" y=\"-587.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 1 -->\r\n",
       "<g id=\"node2\" class=\"node\"><title>1</title>\r\n",
       "<path fill=\"#eb9e66\" stroke=\"black\" d=\"M1219,-544C1219,-544 1121,-544 1121,-544 1115,-544 1109,-538 1109,-532 1109,-532 1109,-473 1109,-473 1109,-467 1115,-461 1121,-461 1121,-461 1219,-461 1219,-461 1225,-461 1231,-467 1231,-473 1231,-473 1231,-532 1231,-532 1231,-538 1225,-544 1219,-544\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">年龄 &lt;= 11.58</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.303</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 397</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [323, 74]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;1 -->\r\n",
       "<g id=\"edge1\" class=\"edge\"><title>0&#45;&gt;1</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1429.62,-596.964C1374.86,-577.251 1296.87,-549.172 1240.68,-528.943\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1241.74,-525.608 1231.15,-525.514 1239.37,-532.195 1241.74,-525.608\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1241.8\" y=\"-544.435\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\r\n",
       "</g>\r\n",
       "<!-- 28 -->\r\n",
       "<g id=\"node29\" class=\"node\"><title>28</title>\r\n",
       "<path fill=\"#83c1ef\" stroke=\"black\" d=\"M1844,-544C1844,-544 1746,-544 1746,-544 1740,-544 1734,-538 1734,-532 1734,-532 1734,-473 1734,-473 1734,-467 1740,-461 1746,-461 1746,-461 1844,-461 1844,-461 1850,-461 1856,-467 1856,-473 1856,-473 1856,-532 1856,-532 1856,-538 1850,-544 1844,-544\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">门票等级 &lt;= 2.114</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.395</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 225</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [61, 164]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 0&#45;&gt;28 -->\r\n",
       "<g id=\"edge28\" class=\"edge\"><title>0&#45;&gt;28</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1560.1,-595.113C1608.58,-576.203 1674.72,-550.409 1724.46,-531.009\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1725.82,-534.236 1733.87,-527.341 1723.28,-527.714 1725.82,-534.236\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1723.82\" y=\"-546.534\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\r\n",
       "</g>\r\n",
       "<!-- 2 -->\r\n",
       "<g id=\"node3\" class=\"node\"><title>2</title>\r\n",
       "<path fill=\"#cae5f8\" stroke=\"black\" d=\"M703,-425C703,-425 545,-425 545,-425 539,-425 533,-419 533,-413 533,-413 533,-354 533,-354 533,-348 539,-342 545,-342 545,-342 703,-342 703,-342 709,-342 715,-348 715,-354 715,-354 715,-413 715,-413 715,-419 709,-425 703,-425\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">船上兄弟姐妹/配偶数 &lt;= 3.872</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.488</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 26</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [11, 15]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;2 -->\r\n",
       "<g id=\"edge2\" class=\"edge\"><title>1&#45;&gt;2</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1108.96,-488.419C1016.03,-468.507 838.04,-430.366 725.465,-406.243\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"725.967,-402.771 715.455,-404.098 724.5,-409.615 725.967,-402.771\"/>\r\n",
       "</g>\r\n",
       "<!-- 15 -->\r\n",
       "<g id=\"node16\" class=\"node\"><title>15</title>\r\n",
       "<path fill=\"#ea995e\" stroke=\"black\" d=\"M1219,-425C1219,-425 1121,-425 1121,-425 1115,-425 1109,-419 1109,-413 1109,-413 1109,-354 1109,-354 1109,-348 1115,-342 1121,-342 1121,-342 1219,-342 1219,-342 1225,-342 1231,-348 1231,-354 1231,-354 1231,-413 1231,-413 1231,-419 1225,-425 1219,-425\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">门票等级 &lt;= 2.637</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.267</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 371</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [312, 59]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1170\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 1&#45;&gt;15 -->\r\n",
       "<g id=\"edge15\" class=\"edge\"><title>1&#45;&gt;15</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1170,-460.907C1170,-452.649 1170,-443.864 1170,-435.302\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1173.5,-435.021 1170,-425.021 1166.5,-435.021 1173.5,-435.021\"/>\r\n",
       "</g>\r\n",
       "<!-- 3 -->\r\n",
       "<g id=\"node4\" class=\"node\"><title>3</title>\r\n",
       "<path fill=\"#63b2eb\" stroke=\"black\" d=\"M459,-306C459,-306 301,-306 301,-306 295,-306 289,-300 289,-294 289,-294 289,-235 289,-235 289,-229 295,-223 301,-223 301,-223 459,-223 459,-223 465,-223 471,-229 471,-235 471,-235 471,-294 471,-294 471,-300 465,-306 459,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">船上兄弟姐妹/配偶数 &lt;= 1.573</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.291</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 17</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [3, 14]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 2&#45;&gt;3 -->\r\n",
       "<g id=\"edge3\" class=\"edge\"><title>2&#45;&gt;3</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M539.345,-341.907C518.148,-331.743 495.287,-320.781 473.68,-310.42\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"475.035,-307.189 464.505,-306.021 472.009,-313.501 475.035,-307.189\"/>\r\n",
       "</g>\r\n",
       "<!-- 10 -->\r\n",
       "<g id=\"node11\" class=\"node\"><title>10</title>\r\n",
       "<path fill=\"#e89152\" stroke=\"black\" d=\"M692,-306C692,-306 556,-306 556,-306 550,-306 544,-300 544,-294 544,-294 544,-235 544,-235 544,-229 550,-223 556,-223 556,-223 692,-223 692,-223 698,-223 704,-229 704,-235 704,-235 704,-294 704,-294 704,-300 698,-306 692,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">船上父母/孩子数 &lt;= 1.183</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.198</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 9</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [8, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 2&#45;&gt;10 -->\r\n",
       "<g id=\"edge10\" class=\"edge\"><title>2&#45;&gt;10</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M624,-341.907C624,-333.649 624,-324.864 624,-316.302\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"627.5,-316.021 624,-306.021 620.5,-316.021 627.5,-316.021\"/>\r\n",
       "</g>\r\n",
       "<!-- 4 -->\r\n",
       "<g id=\"node5\" class=\"node\"><title>4</title>\r\n",
       "<path fill=\"#48a5e7\" stroke=\"black\" d=\"M242,-187C242,-187 114,-187 114,-187 108,-187 102,-181 102,-175 102,-175 102,-116 102,-116 102,-110 108,-104 114,-104 114,-104 242,-104 242,-104 248,-104 254,-110 254,-116 254,-116 254,-175 254,-175 254,-181 248,-187 242,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">船上父母/孩子数 &lt;= 0.22</text>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.133</text>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 14</text>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 13]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 3&#45;&gt;4 -->\r\n",
       "<g id=\"edge4\" class=\"edge\"><title>3&#45;&gt;4</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M309.917,-222.907C292.839,-213.016 274.455,-202.368 256.994,-192.254\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"258.367,-189.004 247.959,-187.021 254.858,-195.062 258.367,-189.004\"/>\r\n",
       "</g>\r\n",
       "<!-- 7 -->\r\n",
       "<g id=\"node8\" class=\"node\"><title>7</title>\r\n",
       "<path fill=\"#f2c09c\" stroke=\"black\" d=\"M422,-187C422,-187 338,-187 338,-187 332,-187 326,-181 326,-175 326,-175 326,-116 326,-116 326,-110 332,-104 338,-104 338,-104 422,-104 422,-104 428,-104 434,-110 434,-116 434,-116 434,-175 434,-175 434,-181 428,-187 422,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">票价 &lt;= 36.549</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.444</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"380\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 3&#45;&gt;7 -->\r\n",
       "<g id=\"edge7\" class=\"edge\"><title>3&#45;&gt;7</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M380,-222.907C380,-214.649 380,-205.864 380,-197.302\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"383.5,-197.021 380,-187.021 376.5,-197.021 383.5,-197.021\"/>\r\n",
       "</g>\r\n",
       "<!-- 5 -->\r\n",
       "<g id=\"node6\" class=\"node\"><title>5</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M88,-68C88,-68 12,-68 12,-68 6,-68 0,-62 0,-56 0,-56 0,-12 0,-12 0,-6 6,-0 12,-0 12,-0 88,-0 88,-0 94,-0 100,-6 100,-12 100,-12 100,-56 100,-56 100,-62 94,-68 88,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"50\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"50\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"middle\" x=\"50\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 0]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"50\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 4&#45;&gt;5 -->\r\n",
       "<g id=\"edge5\" class=\"edge\"><title>4&#45;&gt;5</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M130.338,-103.726C119.356,-94.3318 107.686,-84.349 96.7444,-74.9883\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"98.7996,-72.1406 88.9256,-68.2996 94.2492,-77.4598 98.7996,-72.1406\"/>\r\n",
       "</g>\r\n",
       "<!-- 6 -->\r\n",
       "<g id=\"node7\" class=\"node\"><title>6</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M226,-68C226,-68 130,-68 130,-68 124,-68 118,-62 118,-56 118,-56 118,-12 118,-12 118,-6 124,-0 130,-0 130,-0 226,-0 226,-0 232,-0 238,-6 238,-12 238,-12 238,-56 238,-56 238,-62 232,-68 226,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 13</text>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 13]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"178\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 4&#45;&gt;6 -->\r\n",
       "<g id=\"edge6\" class=\"edge\"><title>4&#45;&gt;6</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M178,-103.726C178,-95.5175 178,-86.8595 178,-78.56\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"181.5,-78.2996 178,-68.2996 174.5,-78.2996 181.5,-78.2996\"/>\r\n",
       "</g>\r\n",
       "<!-- 8 -->\r\n",
       "<g id=\"node9\" class=\"node\"><title>8</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M344,-68C344,-68 268,-68 268,-68 262,-68 256,-62 256,-56 256,-56 256,-12 256,-12 256,-6 262,-0 268,-0 268,-0 344,-0 344,-0 350,-0 356,-6 356,-12 356,-12 356,-56 356,-56 356,-62 350,-68 344,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"306\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"306\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 2</text>\r\n",
       "<text text-anchor=\"middle\" x=\"306\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2, 0]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"306\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 7&#45;&gt;8 -->\r\n",
       "<g id=\"edge8\" class=\"edge\"><title>7&#45;&gt;8</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M352.445,-103.726C346.466,-94.879 340.135,-85.51 334.134,-76.6303\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"337.003,-74.6253 328.504,-68.2996 331.203,-78.5448 337.003,-74.6253\"/>\r\n",
       "</g>\r\n",
       "<!-- 9 -->\r\n",
       "<g id=\"node10\" class=\"node\"><title>9</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M482,-68C482,-68 386,-68 386,-68 380,-68 374,-62 374,-56 374,-56 374,-12 374,-12 374,-6 380,-0 386,-0 386,-0 482,-0 482,-0 488,-0 494,-6 494,-12 494,-12 494,-56 494,-56 494,-62 488,-68 482,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"434\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"434\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"middle\" x=\"434\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"434\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 7&#45;&gt;9 -->\r\n",
       "<g id=\"edge9\" class=\"edge\"><title>7&#45;&gt;9</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M400.108,-103.726C404.336,-95.1527 408.805,-86.0891 413.063,-77.4555\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"416.294,-78.8164 417.578,-68.2996 410.016,-75.7203 416.294,-78.8164\"/>\r\n",
       "</g>\r\n",
       "<!-- 11 -->\r\n",
       "<g id=\"node12\" class=\"node\"><title>11</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M578,-179.5C578,-179.5 502,-179.5 502,-179.5 496,-179.5 490,-173.5 490,-167.5 490,-167.5 490,-123.5 490,-123.5 490,-117.5 496,-111.5 502,-111.5 502,-111.5 578,-111.5 578,-111.5 584,-111.5 590,-117.5 590,-123.5 590,-123.5 590,-167.5 590,-167.5 590,-173.5 584,-179.5 578,-179.5\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"540\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"540\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 7</text>\r\n",
       "<text text-anchor=\"middle\" x=\"540\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [7, 0]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"540\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 10&#45;&gt;11 -->\r\n",
       "<g id=\"edge11\" class=\"edge\"><title>10&#45;&gt;11</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M594.857,-222.907C586.776,-211.652 577.993,-199.418 569.871,-188.106\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"572.487,-185.749 563.812,-179.667 566.801,-189.831 572.487,-185.749\"/>\r\n",
       "</g>\r\n",
       "<!-- 12 -->\r\n",
       "<g id=\"node13\" class=\"node\"><title>12</title>\r\n",
       "<path fill=\"#ffffff\" stroke=\"black\" d=\"M704,-187C704,-187 620,-187 620,-187 614,-187 608,-181 608,-175 608,-175 608,-116 608,-116 608,-110 614,-104 620,-104 620,-104 704,-104 704,-104 710,-104 716,-110 716,-116 716,-116 716,-175 716,-175 716,-181 710,-187 704,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"662\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">票价 &lt;= 42.208</text>\r\n",
       "<text text-anchor=\"middle\" x=\"662\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.5</text>\r\n",
       "<text text-anchor=\"middle\" x=\"662\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 2</text>\r\n",
       "<text text-anchor=\"middle\" x=\"662\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"662\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 10&#45;&gt;12 -->\r\n",
       "<g id=\"edge12\" class=\"edge\"><title>10&#45;&gt;12</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M637.184,-222.907C639.925,-214.468 642.845,-205.477 645.683,-196.738\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"649.079,-197.613 648.839,-187.021 642.421,-195.451 649.079,-197.613\"/>\r\n",
       "</g>\r\n",
       "<!-- 13 -->\r\n",
       "<g id=\"node14\" class=\"node\"><title>13</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M620,-68C620,-68 524,-68 524,-68 518,-68 512,-62 512,-56 512,-56 512,-12 512,-12 512,-6 518,-0 524,-0 524,-0 620,-0 620,-0 626,-0 632,-6 632,-12 632,-12 632,-56 632,-56 632,-62 626,-68 620,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"572\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"572\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"middle\" x=\"572\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"572\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 12&#45;&gt;13 -->\r\n",
       "<g id=\"edge13\" class=\"edge\"><title>12&#45;&gt;13</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M628.487,-103.726C621.066,-94.6966 613.197,-85.1235 605.766,-76.0816\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"608.423,-73.8026 599.37,-68.2996 603.015,-78.2474 608.423,-73.8026\"/>\r\n",
       "</g>\r\n",
       "<!-- 14 -->\r\n",
       "<g id=\"node15\" class=\"node\"><title>14</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M738,-68C738,-68 662,-68 662,-68 656,-68 650,-62 650,-56 650,-56 650,-12 650,-12 650,-6 656,-0 662,-0 662,-0 738,-0 738,-0 744,-0 750,-6 750,-12 750,-12 750,-56 750,-56 750,-62 744,-68 738,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"700\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"700\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"middle\" x=\"700\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 0]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"700\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 12&#45;&gt;14 -->\r\n",
       "<g id=\"edge14\" class=\"edge\"><title>12&#45;&gt;14</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M676.15,-103.726C679.062,-95.3351 682.137,-86.4745 685.075,-78.0072\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"688.472,-78.8944 688.444,-68.2996 681.859,-76.5994 688.472,-78.8944\"/>\r\n",
       "</g>\r\n",
       "<!-- 16 -->\r\n",
       "<g id=\"node17\" class=\"node\"><title>16</title>\r\n",
       "<path fill=\"#eca572\" stroke=\"black\" d=\"M1140,-306C1140,-306 1042,-306 1042,-306 1036,-306 1030,-300 1030,-294 1030,-294 1030,-235 1030,-235 1030,-229 1036,-223 1042,-223 1042,-223 1140,-223 1140,-223 1146,-223 1152,-229 1152,-235 1152,-235 1152,-294 1152,-294 1152,-300 1146,-306 1140,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">门票等级 &lt;= 1.623</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.347</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 152</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [118, 34]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 15&#45;&gt;16 -->\r\n",
       "<g id=\"edge16\" class=\"edge\"><title>15&#45;&gt;16</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1142.59,-341.907C1136.59,-333.014 1130.17,-323.509 1123.97,-314.331\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1126.86,-312.35 1118.36,-306.021 1121.06,-316.267 1126.86,-312.35\"/>\r\n",
       "</g>\r\n",
       "<!-- 23 -->\r\n",
       "<g id=\"node24\" class=\"node\"><title>23</title>\r\n",
       "<path fill=\"#e89153\" stroke=\"black\" d=\"M1298,-306C1298,-306 1200,-306 1200,-306 1194,-306 1188,-300 1188,-294 1188,-294 1188,-235 1188,-235 1188,-229 1194,-223 1200,-223 1200,-223 1298,-223 1298,-223 1304,-223 1310,-229 1310,-235 1310,-235 1310,-294 1310,-294 1310,-300 1304,-306 1298,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">年龄 &lt;= 12.227</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.202</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 219</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [194, 25]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 15&#45;&gt;23 -->\r\n",
       "<g id=\"edge23\" class=\"edge\"><title>15&#45;&gt;23</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1197.41,-341.907C1203.41,-333.014 1209.83,-323.509 1216.03,-314.331\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1218.94,-316.267 1221.64,-306.021 1213.14,-312.35 1218.94,-316.267\"/>\r\n",
       "</g>\r\n",
       "<!-- 17 -->\r\n",
       "<g id=\"node18\" class=\"node\"><title>17</title>\r\n",
       "<path fill=\"#f3c5a4\" stroke=\"black\" d=\"M980.5,-187C980.5,-187 891.5,-187 891.5,-187 885.5,-187 879.5,-181 879.5,-175 879.5,-175 879.5,-116 879.5,-116 879.5,-110 885.5,-104 891.5,-104 891.5,-104 980.5,-104 980.5,-104 986.5,-104 992.5,-110 992.5,-116 992.5,-116 992.5,-175 992.5,-175 992.5,-181 986.5,-187 980.5,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"936\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">年龄 &lt;= 57.546</text>\r\n",
       "<text text-anchor=\"middle\" x=\"936\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.455</text>\r\n",
       "<text text-anchor=\"middle\" x=\"936\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 80</text>\r\n",
       "<text text-anchor=\"middle\" x=\"936\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [52, 28]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"936\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 16&#45;&gt;17 -->\r\n",
       "<g id=\"edge17\" class=\"edge\"><title>16&#45;&gt;17</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1037.22,-222.907C1024.48,-213.288 1010.79,-202.953 997.722,-193.09\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"999.772,-190.252 989.681,-187.021 995.554,-195.839 999.772,-190.252\"/>\r\n",
       "</g>\r\n",
       "<!-- 20 -->\r\n",
       "<g id=\"node21\" class=\"node\"><title>20</title>\r\n",
       "<path fill=\"#e78c4b\" stroke=\"black\" d=\"M1159,-187C1159,-187 1023,-187 1023,-187 1017,-187 1011,-181 1011,-175 1011,-175 1011,-116 1011,-116 1011,-110 1017,-104 1023,-104 1023,-104 1159,-104 1159,-104 1165,-104 1171,-110 1171,-116 1171,-116 1171,-175 1171,-175 1171,-181 1165,-187 1159,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">船上父母/孩子数 &lt;= 0.357</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.153</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 72</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [66, 6]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1091\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 16&#45;&gt;20 -->\r\n",
       "<g id=\"edge20\" class=\"edge\"><title>16&#45;&gt;20</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1091,-222.907C1091,-214.649 1091,-205.864 1091,-197.302\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1094.5,-197.021 1091,-187.021 1087.5,-197.021 1094.5,-197.021\"/>\r\n",
       "</g>\r\n",
       "<!-- 18 -->\r\n",
       "<g id=\"node19\" class=\"node\"><title>18</title>\r\n",
       "<path fill=\"#f5d1b7\" stroke=\"black\" d=\"M869.5,-68C869.5,-68 780.5,-68 780.5,-68 774.5,-68 768.5,-62 768.5,-56 768.5,-56 768.5,-12 768.5,-12 768.5,-6 774.5,-0 780.5,-0 780.5,-0 869.5,-0 869.5,-0 875.5,-0 881.5,-6 881.5,-12 881.5,-12 881.5,-56 881.5,-56 881.5,-62 875.5,-68 869.5,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"825\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.475</text>\r\n",
       "<text text-anchor=\"middle\" x=\"825\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 67</text>\r\n",
       "<text text-anchor=\"middle\" x=\"825\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [41, 26]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"825\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 17&#45;&gt;18 -->\r\n",
       "<g id=\"edge18\" class=\"edge\"><title>17&#45;&gt;18</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M894.668,-103.726C885.329,-94.5142 875.418,-84.7364 866.09,-75.5343\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"868.333,-72.8308 858.756,-68.2996 863.417,-77.8141 868.333,-72.8308\"/>\r\n",
       "</g>\r\n",
       "<!-- 19 -->\r\n",
       "<g id=\"node20\" class=\"node\"><title>19</title>\r\n",
       "<path fill=\"#ea985d\" stroke=\"black\" d=\"M992.5,-68C992.5,-68 911.5,-68 911.5,-68 905.5,-68 899.5,-62 899.5,-56 899.5,-56 899.5,-12 899.5,-12 899.5,-6 905.5,-0 911.5,-0 911.5,-0 992.5,-0 992.5,-0 998.5,-0 1004.5,-6 1004.5,-12 1004.5,-12 1004.5,-56 1004.5,-56 1004.5,-62 998.5,-68 992.5,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"952\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.26</text>\r\n",
       "<text text-anchor=\"middle\" x=\"952\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 13</text>\r\n",
       "<text text-anchor=\"middle\" x=\"952\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [11, 2]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"952\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 17&#45;&gt;19 -->\r\n",
       "<g id=\"edge19\" class=\"edge\"><title>17&#45;&gt;19</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M941.958,-103.726C943.171,-95.4263 944.45,-86.6671 945.675,-78.2834\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"949.152,-78.7006 947.134,-68.2996 942.225,-77.6885 949.152,-78.7006\"/>\r\n",
       "</g>\r\n",
       "<!-- 21 -->\r\n",
       "<g id=\"node22\" class=\"node\"><title>21</title>\r\n",
       "<path fill=\"#e88e4d\" stroke=\"black\" d=\"M1115.5,-68C1115.5,-68 1034.5,-68 1034.5,-68 1028.5,-68 1022.5,-62 1022.5,-56 1022.5,-56 1022.5,-12 1022.5,-12 1022.5,-6 1028.5,-0 1034.5,-0 1034.5,-0 1115.5,-0 1115.5,-0 1121.5,-0 1127.5,-6 1127.5,-12 1127.5,-12 1127.5,-56 1127.5,-56 1127.5,-62 1121.5,-68 1115.5,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1075\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.17</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1075\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 64</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1075\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [58, 6]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1075\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 20&#45;&gt;21 -->\r\n",
       "<g id=\"edge21\" class=\"edge\"><title>20&#45;&gt;21</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1085.04,-103.726C1083.83,-95.4263 1082.55,-86.6671 1081.32,-78.2834\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1084.77,-77.6885 1079.87,-68.2996 1077.85,-78.7006 1084.77,-77.6885\"/>\r\n",
       "</g>\r\n",
       "<!-- 22 -->\r\n",
       "<g id=\"node23\" class=\"node\"><title>22</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M1234,-68C1234,-68 1158,-68 1158,-68 1152,-68 1146,-62 1146,-56 1146,-56 1146,-12 1146,-12 1146,-6 1152,-0 1158,-0 1158,-0 1234,-0 1234,-0 1240,-0 1246,-6 1246,-12 1246,-12 1246,-56 1246,-56 1246,-62 1240,-68 1234,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1196\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1196\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 8</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1196\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [8, 0]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1196\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 20&#45;&gt;22 -->\r\n",
       "<g id=\"edge22\" class=\"edge\"><title>20&#45;&gt;22</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1130.1,-103.726C1138.93,-94.5142 1148.31,-84.7364 1157.13,-75.5343\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1159.67,-77.9399 1164.07,-68.2996 1154.62,-73.095 1159.67,-77.9399\"/>\r\n",
       "</g>\r\n",
       "<!-- 24 -->\r\n",
       "<g id=\"node25\" class=\"node\"><title>24</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M1297,-179.5C1297,-179.5 1201,-179.5 1201,-179.5 1195,-179.5 1189,-173.5 1189,-167.5 1189,-167.5 1189,-123.5 1189,-123.5 1189,-117.5 1195,-111.5 1201,-111.5 1201,-111.5 1297,-111.5 1297,-111.5 1303,-111.5 1309,-117.5 1309,-123.5 1309,-123.5 1309,-167.5 1309,-167.5 1309,-173.5 1303,-179.5 1297,-179.5\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1249\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 23&#45;&gt;24 -->\r\n",
       "<g id=\"edge24\" class=\"edge\"><title>23&#45;&gt;24</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1249,-222.907C1249,-212.204 1249,-200.615 1249,-189.776\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1252.5,-189.667 1249,-179.667 1245.5,-189.667 1252.5,-189.667\"/>\r\n",
       "</g>\r\n",
       "<!-- 25 -->\r\n",
       "<g id=\"node26\" class=\"node\"><title>25</title>\r\n",
       "<path fill=\"#e89151\" stroke=\"black\" d=\"M1437,-187C1437,-187 1339,-187 1339,-187 1333,-187 1327,-181 1327,-175 1327,-175 1327,-116 1327,-116 1327,-110 1333,-104 1339,-104 1339,-104 1437,-104 1437,-104 1443,-104 1449,-110 1449,-116 1449,-116 1449,-175 1449,-175 1449,-181 1443,-187 1437,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1388\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">年龄 &lt;= 37.113</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1388\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.196</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1388\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 218</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1388\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [194, 24]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1388\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 23&#45;&gt;25 -->\r\n",
       "<g id=\"edge25\" class=\"edge\"><title>23&#45;&gt;25</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1297.23,-222.907C1308.44,-213.469 1320.47,-203.343 1331.99,-193.649\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1334.46,-196.138 1339.86,-187.021 1329.96,-190.783 1334.46,-196.138\"/>\r\n",
       "</g>\r\n",
       "<!-- 26 -->\r\n",
       "<g id=\"node27\" class=\"node\"><title>26</title>\r\n",
       "<path fill=\"#e89253\" stroke=\"black\" d=\"M1374,-68C1374,-68 1276,-68 1276,-68 1270,-68 1264,-62 1264,-56 1264,-56 1264,-12 1264,-12 1264,-6 1270,-0 1276,-0 1276,-0 1374,-0 1374,-0 1380,-0 1386,-6 1386,-12 1386,-12 1386,-56 1386,-56 1386,-62 1380,-68 1374,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1325\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.208</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1325\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 195</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1325\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [172, 23]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1325\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 25&#45;&gt;26 -->\r\n",
       "<g id=\"edge26\" class=\"edge\"><title>25&#45;&gt;26</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1364.54,-103.726C1359.56,-95.0615 1354.28,-85.8962 1349.27,-77.1802\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1352.18,-75.2219 1344.16,-68.2996 1346.11,-78.7128 1352.18,-75.2219\"/>\r\n",
       "</g>\r\n",
       "<!-- 27 -->\r\n",
       "<g id=\"node28\" class=\"node\"><title>27</title>\r\n",
       "<path fill=\"#e68742\" stroke=\"black\" d=\"M1497.5,-68C1497.5,-68 1416.5,-68 1416.5,-68 1410.5,-68 1404.5,-62 1404.5,-56 1404.5,-56 1404.5,-12 1404.5,-12 1404.5,-6 1410.5,-0 1416.5,-0 1416.5,-0 1497.5,-0 1497.5,-0 1503.5,-0 1509.5,-6 1509.5,-12 1509.5,-12 1509.5,-56 1509.5,-56 1509.5,-62 1503.5,-68 1497.5,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1457\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.083</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1457\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 23</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1457\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [22, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1457\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 25&#45;&gt;27 -->\r\n",
       "<g id=\"edge27\" class=\"edge\"><title>25&#45;&gt;27</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1413.69,-103.726C1419.21,-94.9703 1425.05,-85.7032 1430.59,-76.9051\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1433.65,-78.6259 1436.02,-68.2996 1427.72,-74.8941 1433.65,-78.6259\"/>\r\n",
       "</g>\r\n",
       "<!-- 29 -->\r\n",
       "<g id=\"node30\" class=\"node\"><title>29</title>\r\n",
       "<path fill=\"#42a1e6\" stroke=\"black\" d=\"M1843,-425C1843,-425 1747,-425 1747,-425 1741,-425 1735,-419 1735,-413 1735,-413 1735,-354 1735,-354 1735,-348 1741,-342 1747,-342 1747,-342 1843,-342 1843,-342 1849,-342 1855,-348 1855,-354 1855,-354 1855,-413 1855,-413 1855,-419 1849,-425 1843,-425\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">年龄 &lt;= 34.127</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.079</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 121</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [5, 116]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1795\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 28&#45;&gt;29 -->\r\n",
       "<g id=\"edge29\" class=\"edge\"><title>28&#45;&gt;29</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1795,-460.907C1795,-452.649 1795,-443.864 1795,-435.302\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1798.5,-435.021 1795,-425.021 1791.5,-435.021 1798.5,-435.021\"/>\r\n",
       "</g>\r\n",
       "<!-- 40 -->\r\n",
       "<g id=\"node41\" class=\"node\"><title>40</title>\r\n",
       "<path fill=\"#fbede3\" stroke=\"black\" d=\"M2275.5,-425C2275.5,-425 2186.5,-425 2186.5,-425 2180.5,-425 2174.5,-419 2174.5,-413 2174.5,-413 2174.5,-354 2174.5,-354 2174.5,-348 2180.5,-342 2186.5,-342 2186.5,-342 2275.5,-342 2275.5,-342 2281.5,-342 2287.5,-348 2287.5,-354 2287.5,-354 2287.5,-413 2287.5,-413 2287.5,-419 2281.5,-425 2275.5,-425\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">登船港 &lt;= 0.084</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.497</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 104</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [56, 48]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 28&#45;&gt;40 -->\r\n",
       "<g id=\"edge40\" class=\"edge\"><title>28&#45;&gt;40</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1856.08,-485.108C1937.47,-463.27 2080.91,-424.775 2164.8,-402.263\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2165.73,-405.639 2174.48,-399.667 2163.92,-398.878 2165.73,-405.639\"/>\r\n",
       "</g>\r\n",
       "<!-- 30 -->\r\n",
       "<g id=\"node31\" class=\"node\"><title>30</title>\r\n",
       "<path fill=\"#3c9ee5\" stroke=\"black\" d=\"M1784,-306C1784,-306 1648,-306 1648,-306 1642,-306 1636,-300 1636,-294 1636,-294 1636,-235 1636,-235 1636,-229 1642,-223 1648,-223 1648,-223 1784,-223 1784,-223 1790,-223 1796,-229 1796,-235 1796,-235 1796,-294 1796,-294 1796,-300 1790,-306 1784,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1716\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">船上父母/孩子数 &lt;= 1.163</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1716\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.029</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1716\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 69</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1716\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 68]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1716\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 29&#45;&gt;30 -->\r\n",
       "<g id=\"edge30\" class=\"edge\"><title>29&#45;&gt;30</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1767.59,-341.907C1761.59,-333.014 1755.17,-323.509 1748.97,-314.331\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1751.86,-312.35 1743.36,-306.021 1746.06,-316.267 1751.86,-312.35\"/>\r\n",
       "</g>\r\n",
       "<!-- 35 -->\r\n",
       "<g id=\"node36\" class=\"node\"><title>35</title>\r\n",
       "<path fill=\"#49a5e7\" stroke=\"black\" d=\"M1922,-306C1922,-306 1826,-306 1826,-306 1820,-306 1814,-300 1814,-294 1814,-294 1814,-235 1814,-235 1814,-229 1820,-223 1826,-223 1826,-223 1922,-223 1922,-223 1928,-223 1934,-229 1934,-235 1934,-235 1934,-294 1934,-294 1934,-300 1928,-306 1922,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1874\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">票价 &lt;= 46.965</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1874\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.142</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1874\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 52</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1874\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [4, 48]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1874\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 29&#45;&gt;35 -->\r\n",
       "<g id=\"edge35\" class=\"edge\"><title>29&#45;&gt;35</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1822.41,-341.907C1828.41,-333.014 1834.83,-323.509 1841.03,-314.331\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1843.94,-316.267 1846.64,-306.021 1838.14,-312.35 1843.94,-316.267\"/>\r\n",
       "</g>\r\n",
       "<!-- 31 -->\r\n",
       "<g id=\"node32\" class=\"node\"><title>31</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M1631,-179.5C1631,-179.5 1535,-179.5 1535,-179.5 1529,-179.5 1523,-173.5 1523,-167.5 1523,-167.5 1523,-123.5 1523,-123.5 1523,-117.5 1529,-111.5 1535,-111.5 1535,-111.5 1631,-111.5 1631,-111.5 1637,-111.5 1643,-117.5 1643,-123.5 1643,-123.5 1643,-167.5 1643,-167.5 1643,-173.5 1637,-179.5 1631,-179.5\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1583\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1583\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 55</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1583\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 55]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1583\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 30&#45;&gt;31 -->\r\n",
       "<g id=\"edge31\" class=\"edge\"><title>30&#45;&gt;31</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1669.86,-222.907C1656.43,-211.101 1641.79,-198.217 1628.41,-186.45\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1630.52,-183.644 1620.7,-179.667 1625.9,-188.9 1630.52,-183.644\"/>\r\n",
       "</g>\r\n",
       "<!-- 32 -->\r\n",
       "<g id=\"node33\" class=\"node\"><title>32</title>\r\n",
       "<path fill=\"#48a5e7\" stroke=\"black\" d=\"M1769,-187C1769,-187 1673,-187 1673,-187 1667,-187 1661,-181 1661,-175 1661,-175 1661,-116 1661,-116 1661,-110 1667,-104 1673,-104 1673,-104 1769,-104 1769,-104 1775,-104 1781,-110 1781,-116 1781,-116 1781,-175 1781,-175 1781,-181 1775,-187 1769,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1721\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">票价 &lt;= 122.438</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1721\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.133</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1721\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 14</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1721\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 13]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1721\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 30&#45;&gt;32 -->\r\n",
       "<g id=\"edge32\" class=\"edge\"><title>30&#45;&gt;32</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1717.73,-222.907C1718.09,-214.558 1718.47,-205.671 1718.84,-197.02\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1722.34,-197.161 1719.27,-187.021 1715.34,-196.862 1722.34,-197.161\"/>\r\n",
       "</g>\r\n",
       "<!-- 33 -->\r\n",
       "<g id=\"node34\" class=\"node\"><title>33</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M1636,-68C1636,-68 1540,-68 1540,-68 1534,-68 1528,-62 1528,-56 1528,-56 1528,-12 1528,-12 1528,-6 1534,-0 1540,-0 1540,-0 1636,-0 1636,-0 1642,-0 1648,-6 1648,-12 1648,-12 1648,-56 1648,-56 1648,-62 1642,-68 1636,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1588\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1588\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 10</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1588\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 10]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1588\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 32&#45;&gt;33 -->\r\n",
       "<g id=\"edge33\" class=\"edge\"><title>32&#45;&gt;33</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1671.48,-103.726C1659.95,-94.2406 1647.7,-84.1551 1636.24,-74.7159\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1638.39,-71.9536 1628.45,-68.2996 1633.94,-77.3577 1638.39,-71.9536\"/>\r\n",
       "</g>\r\n",
       "<!-- 34 -->\r\n",
       "<g id=\"node35\" class=\"node\"><title>34</title>\r\n",
       "<path fill=\"#7bbeee\" stroke=\"black\" d=\"M1774,-68C1774,-68 1678,-68 1678,-68 1672,-68 1666,-62 1666,-56 1666,-56 1666,-12 1666,-12 1666,-6 1672,-0 1678,-0 1678,-0 1774,-0 1774,-0 1780,-0 1786,-6 1786,-12 1786,-12 1786,-56 1786,-56 1786,-62 1780,-68 1774,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1726\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.375</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1726\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1726\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 3]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1726\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 32&#45;&gt;34 -->\r\n",
       "<g id=\"edge34\" class=\"edge\"><title>32&#45;&gt;34</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1722.86,-103.726C1723.24,-95.5175 1723.63,-86.8595 1724.01,-78.56\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1727.52,-78.4489 1724.48,-68.2996 1720.53,-78.1295 1727.52,-78.4489\"/>\r\n",
       "</g>\r\n",
       "<!-- 36 -->\r\n",
       "<g id=\"node37\" class=\"node\"><title>36</title>\r\n",
       "<path fill=\"#65b3eb\" stroke=\"black\" d=\"M1917,-187C1917,-187 1821,-187 1821,-187 1815,-187 1809,-181 1809,-175 1809,-175 1809,-116 1809,-116 1809,-110 1815,-104 1821,-104 1821,-104 1917,-104 1917,-104 1923,-104 1929,-110 1929,-116 1929,-116 1929,-175 1929,-175 1929,-181 1923,-187 1917,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1869\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">年龄 &lt;= 51.18</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1869\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.298</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1869\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 22</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1869\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [4, 18]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1869\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 35&#45;&gt;36 -->\r\n",
       "<g id=\"edge36\" class=\"edge\"><title>35&#45;&gt;36</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1872.27,-222.907C1871.91,-214.558 1871.53,-205.671 1871.16,-197.02\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1874.66,-196.862 1870.73,-187.021 1867.66,-197.161 1874.66,-196.862\"/>\r\n",
       "</g>\r\n",
       "<!-- 39 -->\r\n",
       "<g id=\"node40\" class=\"node\"><title>39</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M2055,-179.5C2055,-179.5 1959,-179.5 1959,-179.5 1953,-179.5 1947,-173.5 1947,-167.5 1947,-167.5 1947,-123.5 1947,-123.5 1947,-117.5 1953,-111.5 1959,-111.5 1959,-111.5 2055,-111.5 2055,-111.5 2061,-111.5 2067,-117.5 2067,-123.5 2067,-123.5 2067,-167.5 2067,-167.5 2067,-173.5 2061,-179.5 2055,-179.5\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2007\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2007\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 30</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2007\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 30]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2007\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 35&#45;&gt;39 -->\r\n",
       "<g id=\"edge39\" class=\"edge\"><title>35&#45;&gt;39</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1920.14,-222.907C1933.57,-211.101 1948.21,-198.217 1961.59,-186.45\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1964.1,-188.9 1969.3,-179.667 1959.48,-183.644 1964.1,-188.9\"/>\r\n",
       "</g>\r\n",
       "<!-- 37 -->\r\n",
       "<g id=\"node38\" class=\"node\"><title>37</title>\r\n",
       "<path fill=\"#5eafea\" stroke=\"black\" d=\"M1912,-68C1912,-68 1816,-68 1816,-68 1810,-68 1804,-62 1804,-56 1804,-56 1804,-12 1804,-12 1804,-6 1810,-0 1816,-0 1816,-0 1912,-0 1912,-0 1918,-0 1924,-6 1924,-12 1924,-12 1924,-56 1924,-56 1924,-62 1918,-68 1912,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"1864\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.266</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1864\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 19</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1864\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [3, 16]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"1864\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 36&#45;&gt;37 -->\r\n",
       "<g id=\"edge37\" class=\"edge\"><title>36&#45;&gt;37</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1867.14,-103.726C1866.76,-95.5175 1866.37,-86.8595 1865.99,-78.56\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1869.47,-78.1295 1865.52,-68.2996 1862.48,-78.4489 1869.47,-78.1295\"/>\r\n",
       "</g>\r\n",
       "<!-- 38 -->\r\n",
       "<g id=\"node39\" class=\"node\"><title>38</title>\r\n",
       "<path fill=\"#9ccef2\" stroke=\"black\" d=\"M2050,-68C2050,-68 1954,-68 1954,-68 1948,-68 1942,-62 1942,-56 1942,-56 1942,-12 1942,-12 1942,-6 1948,-0 1954,-0 1954,-0 2050,-0 2050,-0 2056,-0 2062,-6 2062,-12 2062,-12 2062,-56 2062,-56 2062,-62 2056,-68 2050,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2002\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.444</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2002\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2002\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 2]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2002\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 36&#45;&gt;38 -->\r\n",
       "<g id=\"edge38\" class=\"edge\"><title>36&#45;&gt;38</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1918.52,-103.726C1930.05,-94.2406 1942.3,-84.1551 1953.76,-74.7159\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1956.06,-77.3577 1961.55,-68.2996 1951.61,-71.9536 1956.06,-77.3577\"/>\r\n",
       "</g>\r\n",
       "<!-- 41 -->\r\n",
       "<g id=\"node42\" class=\"node\"><title>41</title>\r\n",
       "<path fill=\"#f0b890\" stroke=\"black\" d=\"M2275.5,-306C2275.5,-306 2186.5,-306 2186.5,-306 2180.5,-306 2174.5,-300 2174.5,-294 2174.5,-294 2174.5,-235 2174.5,-235 2174.5,-229 2180.5,-223 2186.5,-223 2186.5,-223 2275.5,-223 2275.5,-223 2281.5,-223 2287.5,-229 2287.5,-235 2287.5,-235 2287.5,-294 2287.5,-294 2287.5,-300 2281.5,-306 2275.5,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">年龄 &lt;= 50.69</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.424</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 59</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [41, 18]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2231\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 40&#45;&gt;41 -->\r\n",
       "<g id=\"edge41\" class=\"edge\"><title>40&#45;&gt;41</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2231,-341.907C2231,-333.649 2231,-324.864 2231,-316.302\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2234.5,-316.021 2231,-306.021 2227.5,-316.021 2234.5,-316.021\"/>\r\n",
       "</g>\r\n",
       "<!-- 46 -->\r\n",
       "<g id=\"node47\" class=\"node\"><title>46</title>\r\n",
       "<path fill=\"#9ccef2\" stroke=\"black\" d=\"M2533,-306C2533,-306 2437,-306 2437,-306 2431,-306 2425,-300 2425,-294 2425,-294 2425,-235 2425,-235 2425,-229 2431,-223 2437,-223 2437,-223 2533,-223 2533,-223 2539,-223 2545,-229 2545,-235 2545,-235 2545,-294 2545,-294 2545,-300 2539,-306 2533,-306\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">登船港 &lt;= 1.125</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.444</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 45</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [15, 30]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 40&#45;&gt;46 -->\r\n",
       "<g id=\"edge46\" class=\"edge\"><title>40&#45;&gt;46</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2287.69,-356.389C2325.53,-338.956 2375.54,-315.921 2415.74,-297.403\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2417.33,-300.525 2424.95,-293.162 2414.4,-294.167 2417.33,-300.525\"/>\r\n",
       "</g>\r\n",
       "<!-- 42 -->\r\n",
       "<g id=\"node43\" class=\"node\"><title>42</title>\r\n",
       "<path fill=\"#f0b58b\" stroke=\"black\" d=\"M2208.5,-187C2208.5,-187 2119.5,-187 2119.5,-187 2113.5,-187 2107.5,-181 2107.5,-175 2107.5,-175 2107.5,-116 2107.5,-116 2107.5,-110 2113.5,-104 2119.5,-104 2119.5,-104 2208.5,-104 2208.5,-104 2214.5,-104 2220.5,-110 2220.5,-116 2220.5,-116 2220.5,-175 2220.5,-175 2220.5,-181 2214.5,-187 2208.5,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2164\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">票价 &lt;= 40.56</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2164\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.414</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2164\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 58</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2164\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [41, 17]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2164\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 41&#45;&gt;42 -->\r\n",
       "<g id=\"edge42\" class=\"edge\"><title>41&#45;&gt;42</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2207.75,-222.907C2202.77,-214.195 2197.44,-204.897 2192.29,-195.893\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2195.21,-193.959 2187.2,-187.021 2189.14,-197.438 2195.21,-193.959\"/>\r\n",
       "</g>\r\n",
       "<!-- 45 -->\r\n",
       "<g id=\"node46\" class=\"node\"><title>45</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M2347,-179.5C2347,-179.5 2251,-179.5 2251,-179.5 2245,-179.5 2239,-173.5 2239,-167.5 2239,-167.5 2239,-123.5 2239,-123.5 2239,-117.5 2245,-111.5 2251,-111.5 2251,-111.5 2347,-111.5 2347,-111.5 2353,-111.5 2359,-117.5 2359,-123.5 2359,-123.5 2359,-167.5 2359,-167.5 2359,-173.5 2353,-179.5 2347,-179.5\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2299\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2299\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2299\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2299\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 41&#45;&gt;45 -->\r\n",
       "<g id=\"edge45\" class=\"edge\"><title>41&#45;&gt;45</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2254.59,-222.907C2261.07,-211.763 2268.1,-199.658 2274.63,-188.439\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2277.72,-190.072 2279.72,-179.667 2271.67,-186.554 2277.72,-190.072\"/>\r\n",
       "</g>\r\n",
       "<!-- 43 -->\r\n",
       "<g id=\"node44\" class=\"node\"><title>43</title>\r\n",
       "<path fill=\"#f1bc96\" stroke=\"black\" d=\"M2181.5,-68C2181.5,-68 2092.5,-68 2092.5,-68 2086.5,-68 2080.5,-62 2080.5,-56 2080.5,-56 2080.5,-12 2080.5,-12 2080.5,-6 2086.5,-0 2092.5,-0 2092.5,-0 2181.5,-0 2181.5,-0 2187.5,-0 2193.5,-6 2193.5,-12 2193.5,-12 2193.5,-56 2193.5,-56 2193.5,-62 2187.5,-68 2181.5,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2137\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.436</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2137\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 53</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2137\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [36, 17]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2137\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 42&#45;&gt;43 -->\r\n",
       "<g id=\"edge43\" class=\"edge\"><title>42&#45;&gt;43</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2153.95,-103.726C2151.9,-95.4263 2149.74,-86.6671 2147.67,-78.2834\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2151,-77.1709 2145.21,-68.2996 2144.21,-78.8467 2151,-77.1709\"/>\r\n",
       "</g>\r\n",
       "<!-- 44 -->\r\n",
       "<g id=\"node45\" class=\"node\"><title>44</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M2300,-68C2300,-68 2224,-68 2224,-68 2218,-68 2212,-62 2212,-56 2212,-56 2212,-12 2212,-12 2212,-6 2218,-0 2224,-0 2224,-0 2300,-0 2300,-0 2306,-0 2312,-6 2312,-12 2312,-12 2312,-56 2312,-56 2312,-62 2306,-68 2300,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2262\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2262\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 5</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2262\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [5, 0]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2262\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 42&#45;&gt;44 -->\r\n",
       "<g id=\"edge44\" class=\"edge\"><title>42&#45;&gt;44</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2200.49,-103.726C2208.65,-94.6054 2217.31,-84.93 2225.48,-75.8078\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2228.14,-78.0853 2232.2,-68.2996 2222.92,-73.417 2228.14,-78.0853\"/>\r\n",
       "</g>\r\n",
       "<!-- 47 -->\r\n",
       "<g id=\"node48\" class=\"node\"><title>47</title>\r\n",
       "<path fill=\"#ffffff\" stroke=\"black\" d=\"M2527,-187C2527,-187 2443,-187 2443,-187 2437,-187 2431,-181 2431,-175 2431,-175 2431,-116 2431,-116 2431,-110 2437,-104 2443,-104 2443,-104 2527,-104 2527,-104 2533,-104 2539,-110 2539,-116 2539,-116 2539,-175 2539,-175 2539,-181 2533,-187 2527,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">票价 &lt;= 18.554</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.5</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 16</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [8, 8]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2485\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 46&#45;&gt;47 -->\r\n",
       "<g id=\"edge47\" class=\"edge\"><title>46&#45;&gt;47</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2485,-222.907C2485,-214.649 2485,-205.864 2485,-197.302\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2488.5,-197.021 2485,-187.021 2481.5,-197.021 2488.5,-197.021\"/>\r\n",
       "</g>\r\n",
       "<!-- 50 -->\r\n",
       "<g id=\"node51\" class=\"node\"><title>50</title>\r\n",
       "<path fill=\"#78bced\" stroke=\"black\" d=\"M2698,-187C2698,-187 2602,-187 2602,-187 2596,-187 2590,-181 2590,-175 2590,-175 2590,-116 2590,-116 2590,-110 2596,-104 2602,-104 2602,-104 2698,-104 2698,-104 2704,-104 2710,-110 2710,-116 2710,-116 2710,-175 2710,-175 2710,-181 2704,-187 2698,-187\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">票价 &lt;= 27.592</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.366</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 29</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [7, 22]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 46&#45;&gt;50 -->\r\n",
       "<g id=\"edge50\" class=\"edge\"><title>46&#45;&gt;50</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2542.25,-222.907C2555.94,-213.197 2570.66,-202.758 2584.69,-192.811\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2586.72,-195.66 2592.86,-187.021 2582.67,-189.95 2586.72,-195.66\"/>\r\n",
       "</g>\r\n",
       "<!-- 48 -->\r\n",
       "<g id=\"node49\" class=\"node\"><title>48</title>\r\n",
       "<path fill=\"#f8e0ce\" stroke=\"black\" d=\"M2421.5,-68C2421.5,-68 2342.5,-68 2342.5,-68 2336.5,-68 2330.5,-62 2330.5,-56 2330.5,-56 2330.5,-12 2330.5,-12 2330.5,-6 2336.5,-0 2342.5,-0 2342.5,-0 2421.5,-0 2421.5,-0 2427.5,-0 2433.5,-6 2433.5,-12 2433.5,-12 2433.5,-56 2433.5,-56 2433.5,-62 2427.5,-68 2421.5,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2382\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.49</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2382\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 14</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2382\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [8, 6]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2382\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 47&#45;&gt;48 -->\r\n",
       "<g id=\"edge48\" class=\"edge\"><title>47&#45;&gt;48</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2446.65,-103.726C2438.07,-94.6054 2428.97,-84.93 2420.39,-75.8078\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2422.72,-73.1855 2413.32,-68.2996 2417.63,-77.9816 2422.72,-73.1855\"/>\r\n",
       "</g>\r\n",
       "<!-- 49 -->\r\n",
       "<g id=\"node50\" class=\"node\"><title>49</title>\r\n",
       "<path fill=\"#399de5\" stroke=\"black\" d=\"M2560,-68C2560,-68 2464,-68 2464,-68 2458,-68 2452,-62 2452,-56 2452,-56 2452,-12 2452,-12 2452,-6 2458,-0 2464,-0 2464,-0 2560,-0 2560,-0 2566,-0 2572,-6 2572,-12 2572,-12 2572,-56 2572,-56 2572,-62 2566,-68 2560,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2512\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2512\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 2</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2512\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 2]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2512\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 47&#45;&gt;49 -->\r\n",
       "<g id=\"edge49\" class=\"edge\"><title>47&#45;&gt;49</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2495.05,-103.726C2497.1,-95.4263 2499.26,-86.6671 2501.33,-78.2834\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2504.79,-78.8467 2503.79,-68.2996 2498,-77.1709 2504.79,-78.8467\"/>\r\n",
       "</g>\r\n",
       "<!-- 51 -->\r\n",
       "<g id=\"node52\" class=\"node\"><title>51</title>\r\n",
       "<path fill=\"#6fb8ec\" stroke=\"black\" d=\"M2698,-68C2698,-68 2602,-68 2602,-68 2596,-68 2590,-62 2590,-56 2590,-56 2590,-12 2590,-12 2590,-6 2596,-0 2602,-0 2602,-0 2698,-0 2698,-0 2704,-0 2710,-6 2710,-12 2710,-12 2710,-56 2710,-56 2710,-62 2704,-68 2698,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.337</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 28</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [6, 22]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2650\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Survived</text>\r\n",
       "</g>\r\n",
       "<!-- 50&#45;&gt;51 -->\r\n",
       "<g id=\"edge51\" class=\"edge\"><title>50&#45;&gt;51</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2650,-103.726C2650,-95.5175 2650,-86.8595 2650,-78.56\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2653.5,-78.2996 2650,-68.2996 2646.5,-78.2996 2653.5,-78.2996\"/>\r\n",
       "</g>\r\n",
       "<!-- 52 -->\r\n",
       "<g id=\"node53\" class=\"node\"><title>52</title>\r\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M2816,-68C2816,-68 2740,-68 2740,-68 2734,-68 2728,-62 2728,-56 2728,-56 2728,-12 2728,-12 2728,-6 2734,-0 2740,-0 2740,-0 2816,-0 2816,-0 2822,-0 2828,-6 2828,-12 2828,-12 2828,-56 2828,-56 2828,-62 2822,-68 2816,-68\"/>\r\n",
       "<text text-anchor=\"middle\" x=\"2778\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2778\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2778\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [1, 0]</text>\r\n",
       "<text text-anchor=\"middle\" x=\"2778\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = Dead</text>\r\n",
       "</g>\r\n",
       "<!-- 50&#45;&gt;52 -->\r\n",
       "<g id=\"edge52\" class=\"edge\"><title>50&#45;&gt;52</title>\r\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2697.66,-103.726C2708.64,-94.3318 2720.31,-84.349 2731.26,-74.9883\"/>\r\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2733.75,-77.4598 2739.07,-68.2996 2729.2,-72.1406 2733.75,-77.4598\"/>\r\n",
       "</g>\r\n",
       "</g>\r\n",
       "</svg>\r\n"
      ],
      "text/plain": [
       "<graphviz.files.Source at 0x26f83befac0>"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 画出决策树\n",
    "import graphviz\n",
    "from sklearn import tree\n",
    "\n",
    "clf = DecisionTreeClassifier(splitter='random',\n",
    "                             max_depth=5,\n",
    "                             random_state=12345)\n",
    "clf = clf.fit(X_train, y_train)\n",
    "\n",
    "dot_data = tree.export_graphviz(\n",
    "    clf,\n",
    "    feature_names=feature_names,\n",
    "    class_names=['Dead', 'Survived'],\n",
    "    filled=True  #填充颜色表示不同的分类\n",
    "    ,\n",
    "    rounded=True  #圆角显示\n",
    ")\n",
    "graph = graphviz.Source(dot_data)\n",
    "graph\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('性别', 0.5348785909723042),\n",
       " ('门票等级', 0.22266276512741096),\n",
       " ('年龄', 0.08136830555668179),\n",
       " ('登船港', 0.050968910442901826),\n",
       " ('船上兄弟姐妹/配偶数', 0.04887682015961033),\n",
       " ('票价', 0.04305961926212353),\n",
       " ('船上父母/孩子数', 0.018184988478967306)]"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kk = [*zip(feature_names,clf.feature_importances_)]\n",
    "kk.sort(key=lambda x:x[1],reverse=True)\n",
    "kk"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 网格搜索 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-3 {color: black;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(cv=5, estimator=DecisionTreeClassifier(random_state=12345),\n",
       "             param_grid={&#x27;criterion&#x27;: [&#x27;gini&#x27;, &#x27;entropy&#x27;],\n",
       "                         &#x27;max_depth&#x27;: [1, 2, 3, 4, 5, 6, 7, 8, 9],\n",
       "                         &#x27;splitter&#x27;: (&#x27;best&#x27;, &#x27;random&#x27;)})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(cv=5, estimator=DecisionTreeClassifier(random_state=12345),\n",
       "             param_grid={&#x27;criterion&#x27;: [&#x27;gini&#x27;, &#x27;entropy&#x27;],\n",
       "                         &#x27;max_depth&#x27;: [1, 2, 3, 4, 5, 6, 7, 8, 9],\n",
       "                         &#x27;splitter&#x27;: (&#x27;best&#x27;, &#x27;random&#x27;)})</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: DecisionTreeClassifier</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeClassifier(random_state=12345)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeClassifier</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeClassifier(random_state=12345)</pre></div></div></div></div></div></div></div></div></div></div>"
      ],
      "text/plain": [
       "GridSearchCV(cv=5, estimator=DecisionTreeClassifier(random_state=12345),\n",
       "             param_grid={'criterion': ['gini', 'entropy'],\n",
       "                         'max_depth': [1, 2, 3, 4, 5, 6, 7, 8, 9],\n",
       "                         'splitter': ('best', 'random')})"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "clf = DecisionTreeClassifier(random_state=12345)\n",
    "parameters = {\n",
    "    \"criterion\":[\"gini\",\"entropy\"],\n",
    "    \"splitter\":(\"best\",\"random\"),\n",
    "    \"max_depth\":[*range(1,10)]\n",
    "}\n",
    "GS = GridSearchCV(estimator=clf,param_grid=parameters,cv=5)\n",
    "GS.fit(feature,target)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({'criterion': 'entropy', 'max_depth': 8, 'splitter': 'best'},\n",
       " 0.8177870881736812)"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "GS.best_params_,GS.best_score_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([0.00414376, 0.00260487, 0.00320678, 0.00340524, 0.00273037,\n",
       "        0.00151463, 0.0015522 , 0.00159431, 0.00200443, 0.00120382,\n",
       "        0.002213  , 0.0018229 , 0.00247474, 0.00227394, 0.00270267,\n",
       "        0.00200872, 0.00278101, 0.00140729, 0.0012269 , 0.00140705,\n",
       "        0.00180645, 0.00119486, 0.00180702, 0.00139585, 0.00240164,\n",
       "        0.00140052, 0.00200272, 0.00119777, 0.00199556, 0.00159965,\n",
       "        0.00239401, 0.00180745, 0.00260282, 0.00120554, 0.00260196,\n",
       "        0.00200911]),\n",
       " 'std_fit_time': array([1.15954613e-03, 4.84825259e-04, 5.42875689e-04, 4.48367386e-04,\n",
       "        1.32444652e-03, 4.29683977e-04, 4.11067417e-04, 4.91380888e-04,\n",
       "        4.73798127e-05, 3.97415678e-04, 3.86253051e-04, 4.52997644e-04,\n",
       "        3.79369030e-04, 4.10081082e-04, 5.36019846e-04, 6.47990645e-05,\n",
       "        3.99674444e-04, 4.88890551e-04, 3.90541568e-04, 4.88850994e-04,\n",
       "        4.03332490e-04, 4.02773839e-04, 4.04179743e-04, 4.89490277e-04,\n",
       "        4.85737548e-04, 4.99910068e-04, 3.83550216e-06, 4.00716523e-04,\n",
       "        9.19813811e-06, 4.87867022e-04, 4.90936875e-04, 7.48190217e-04,\n",
       "        4.94961242e-04, 3.93917615e-04, 4.78699067e-04, 9.79711811e-06]),\n",
       " 'mean_score_time': array([0.00235171, 0.00195436, 0.00200419, 0.00245175, 0.00096521,\n",
       "        0.00096188, 0.00108905, 0.00101132, 0.00102768, 0.00137668,\n",
       "        0.00128636, 0.00116658, 0.00136962, 0.00090613, 0.00117688,\n",
       "        0.00140481, 0.0011941 , 0.00099492, 0.00097613, 0.00079608,\n",
       "        0.00079393, 0.00100765, 0.00099416, 0.00120268, 0.00099826,\n",
       "        0.00100193, 0.00099754, 0.00079908, 0.00100513, 0.00079894,\n",
       "        0.00080271, 0.00079169, 0.00119739, 0.0009954 , 0.00099854,\n",
       "        0.00119395]),\n",
       " 'std_score_time': array([6.03354125e-04, 6.80046365e-04, 4.16879434e-04, 5.35814885e-04,\n",
       "        4.08252442e-04, 2.09856494e-04, 3.48322067e-04, 1.61220329e-05,\n",
       "        3.87265757e-05, 5.00863300e-04, 3.91440546e-04, 2.51852640e-04,\n",
       "        2.68026837e-04, 2.00532596e-04, 4.14232488e-04, 4.93508177e-04,\n",
       "        4.01778094e-04, 6.36358795e-06, 5.31850666e-05, 3.98059450e-04,\n",
       "        3.97067802e-04, 7.39112977e-06, 6.17757215e-06, 4.04549291e-04,\n",
       "        6.42050211e-06, 7.15033179e-06, 2.73922093e-06, 3.99675582e-04,\n",
       "        9.76107909e-06, 3.99628685e-04, 4.01482655e-04, 3.96130804e-04,\n",
       "        4.10119110e-04, 8.98176932e-06, 1.37989786e-05, 3.92237371e-04]),\n",
       " 'param_criterion': masked_array(data=['gini', 'gini', 'gini', 'gini', 'gini', 'gini', 'gini',\n",
       "                    'gini', 'gini', 'gini', 'gini', 'gini', 'gini', 'gini',\n",
       "                    'gini', 'gini', 'gini', 'gini', 'entropy', 'entropy',\n",
       "                    'entropy', 'entropy', 'entropy', 'entropy', 'entropy',\n",
       "                    'entropy', 'entropy', 'entropy', 'entropy', 'entropy',\n",
       "                    'entropy', 'entropy', 'entropy', 'entropy', 'entropy',\n",
       "                    'entropy'],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_max_depth': masked_array(data=[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,\n",
       "                    1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_splitter': masked_array(data=['best', 'random', 'best', 'random', 'best', 'random',\n",
       "                    'best', 'random', 'best', 'random', 'best', 'random',\n",
       "                    'best', 'random', 'best', 'random', 'best', 'random',\n",
       "                    'best', 'random', 'best', 'random', 'best', 'random',\n",
       "                    'best', 'random', 'best', 'random', 'best', 'random',\n",
       "                    'best', 'random', 'best', 'random', 'best', 'random'],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'criterion': 'gini', 'max_depth': 1, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 1, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 2, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 2, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 3, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 3, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 4, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 4, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 5, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 5, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 6, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 6, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 7, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 7, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 8, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 8, 'splitter': 'random'},\n",
       "  {'criterion': 'gini', 'max_depth': 9, 'splitter': 'best'},\n",
       "  {'criterion': 'gini', 'max_depth': 9, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 1, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 1, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 2, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 2, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 3, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 3, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 4, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 4, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 5, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 5, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 6, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 6, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 7, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 7, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 8, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 8, 'splitter': 'random'},\n",
       "  {'criterion': 'entropy', 'max_depth': 9, 'splitter': 'best'},\n",
       "  {'criterion': 'entropy', 'max_depth': 9, 'splitter': 'random'}],\n",
       " 'split0_test_score': array([0.80337079, 0.80337079, 0.74719101, 0.74719101, 0.81460674,\n",
       "        0.71348315, 0.76404494, 0.76404494, 0.80337079, 0.76966292,\n",
       "        0.79213483, 0.79775281, 0.79213483, 0.76404494, 0.75280899,\n",
       "        0.79213483, 0.74719101, 0.76404494, 0.80337079, 0.80337079,\n",
       "        0.74719101, 0.74719101, 0.82022472, 0.71348315, 0.76404494,\n",
       "        0.76404494, 0.80337079, 0.76966292, 0.74157303, 0.79775281,\n",
       "        0.80337079, 0.76966292, 0.78089888, 0.76404494, 0.79213483,\n",
       "        0.79775281]),\n",
       " 'split1_test_score': array([0.80337079, 0.80337079, 0.79213483, 0.79213483, 0.81460674,\n",
       "        0.79213483, 0.8258427 , 0.8258427 , 0.82022472, 0.79213483,\n",
       "        0.82022472, 0.78089888, 0.82022472, 0.80337079, 0.82022472,\n",
       "        0.80898876, 0.82022472, 0.82022472, 0.80337079, 0.80337079,\n",
       "        0.79213483, 0.79213483, 0.81460674, 0.79213483, 0.8258427 ,\n",
       "        0.8258427 , 0.80898876, 0.79213483, 0.82022472, 0.81460674,\n",
       "        0.80898876, 0.79213483, 0.80898876, 0.8258427 , 0.8258427 ,\n",
       "        0.82022472]),\n",
       " 'split2_test_score': array([0.78651685, 0.78651685, 0.78651685, 0.79213483, 0.81460674,\n",
       "        0.80337079, 0.81460674, 0.83146067, 0.82022472, 0.84831461,\n",
       "        0.82022472, 0.81460674, 0.82022472, 0.84831461, 0.85393258,\n",
       "        0.80898876, 0.8258427 , 0.82022472, 0.78651685, 0.78651685,\n",
       "        0.78651685, 0.79213483, 0.80898876, 0.80337079, 0.80898876,\n",
       "        0.80337079, 0.81460674, 0.80898876, 0.81460674, 0.8258427 ,\n",
       "        0.80898876, 0.83146067, 0.85393258, 0.80337079, 0.84269663,\n",
       "        0.81460674]),\n",
       " 'split3_test_score': array([0.75280899, 0.75280899, 0.75280899, 0.75842697, 0.78089888,\n",
       "        0.78651685, 0.78651685, 0.78651685, 0.76404494, 0.79775281,\n",
       "        0.78089888, 0.79775281, 0.78089888, 0.80898876, 0.78089888,\n",
       "        0.80898876, 0.78089888, 0.7752809 , 0.75280899, 0.75280899,\n",
       "        0.75280899, 0.75842697, 0.78651685, 0.78651685, 0.78089888,\n",
       "        0.78651685, 0.78089888, 0.79775281, 0.79213483, 0.79213483,\n",
       "        0.79775281, 0.80898876, 0.81460674, 0.78651685, 0.79775281,\n",
       "        0.80337079]),\n",
       " 'split4_test_score': array([0.78531073, 0.78531073, 0.78531073, 0.78531073, 0.81920904,\n",
       "        0.78531073, 0.84180791, 0.81355932, 0.85310734, 0.85310734,\n",
       "        0.85875706, 0.8079096 , 0.83615819, 0.83615819, 0.84180791,\n",
       "        0.81920904, 0.83050847, 0.81920904, 0.78531073, 0.78531073,\n",
       "        0.78531073, 0.78531073, 0.84180791, 0.78531073, 0.84180791,\n",
       "        0.83050847, 0.85310734, 0.81920904, 0.84745763, 0.83050847,\n",
       "        0.84745763, 0.82485876, 0.83050847, 0.85310734, 0.82485876,\n",
       "        0.81920904]),\n",
       " 'mean_test_score': array([0.78627563, 0.78627563, 0.77279248, 0.77503967, 0.80878563,\n",
       "        0.77616327, 0.80656383, 0.8042849 , 0.8121945 , 0.8121945 ,\n",
       "        0.81444804, 0.79978417, 0.80992827, 0.81217546, 0.80993462,\n",
       "        0.80766203, 0.80093316, 0.79979686, 0.78627563, 0.78627563,\n",
       "        0.77279248, 0.77503967, 0.814429  , 0.77616327, 0.80431664,\n",
       "        0.80205675, 0.8121945 , 0.79754967, 0.80319939, 0.81216911,\n",
       "        0.81331175, 0.80542119, 0.81778709, 0.80657653, 0.81665714,\n",
       "        0.81103282]),\n",
       " 'std_test_score': array([0.01846886, 0.01846886, 0.01883596, 0.01866287, 0.01405685,\n",
       "        0.0319844 , 0.02788636, 0.02539383, 0.02897954, 0.03285852,\n",
       "        0.0270313 , 0.01140735, 0.0202946 , 0.02927604, 0.03785241,\n",
       "        0.00871445, 0.03211523, 0.02486226, 0.01846886, 0.01846886,\n",
       "        0.01883596, 0.01866287, 0.01784327, 0.0319844 , 0.02849911,\n",
       "        0.02475231, 0.02344027, 0.01677506, 0.0354937 , 0.01508936,\n",
       "        0.01757396, 0.02246679, 0.024152  , 0.03084771, 0.0189125 ,\n",
       "        0.0089351 ]),\n",
       " 'rank_test_score': array([27, 27, 35, 33, 14, 31, 17, 20,  6,  7,  3, 25, 13,  9, 12, 15, 23,\n",
       "        24, 27, 27, 35, 33,  4, 31, 19, 22,  7, 26, 21, 10,  5, 18,  1, 16,\n",
       "         2, 11])}"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "GS.cv_results_"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "zy-evn",
   "language": "python",
   "name": "zhaoyi"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
